]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
autorunManager: Use a regular urgent notification
authorFlorian Müllner <fmuellner@gnome.org>
Thu, 12 Feb 2015 14:38:17 +0000 (15:38 +0100)
committerFlorian Müllner <fmuellner@gnome.org>
Fri, 20 Feb 2015 00:49:33 +0000 (01:49 +0100)
According to the design, hotplug notifications should no longer offer
an eject action and use regular notification buttons (but using icon
and text), the default action when clicking the notification itself
is to launch the file browser.
Also as the corresponding resident notification is gone, it no
longer makes sense to make the notification transient.

https://bugzilla.gnome.org/show_bug.cgi?id=744815

js/ui/components/autorunManager.js

index 3c6514ce995a47cfa36bd51ef4ce17e04e644195..3a23d19098a97bc424164d52795d1648585ec4ad 100644 (file)
@@ -167,7 +167,7 @@ const AutorunManager = new Lang.Class({
         this._session = new GnomeSession.SessionManager();
         this._volumeMonitor = Gio.VolumeMonitor.get();
 
-        this._transDispatcher = new AutorunTransientDispatcher(this);
+        this._dispatcher = new AutorunDispatcher(this);
     },
 
     enable: function() {
@@ -187,13 +187,13 @@ const AutorunManager = new Lang.Class({
             return;
 
         let discoverer = new ContentTypeDiscoverer(Lang.bind(this, function(mount, apps, contentTypes) {
-            this._transDispatcher.addMount(mount, apps, contentTypes);
+            this._dispatcher.addMount(mount, apps, contentTypes);
         }));
         discoverer.guessContentTypes(mount);
     },
 
     _onMountRemoved: function(monitor, mount) {
-        this._transDispatcher.removeMount(mount);
+        this._dispatcher.removeMount(mount);
     },
 
     ejectMount: function(mount) {
@@ -256,8 +256,8 @@ const AutorunManager = new Lang.Class({
     },
 });
 
-const AutorunTransientDispatcher = new Lang.Class({
-    Name: 'AutorunTransientDispatcher',
+const AutorunDispatcher = new Lang.Class({
+    Name: 'AutorunDispatcher',
 
     _init: function(manager) {
         this._manager = manager;
@@ -303,7 +303,7 @@ const AutorunTransientDispatcher = new Lang.Class({
             return;
      
         // add a new source
-        this._sources.push(new AutorunTransientSource(this._manager, mount, apps));
+        this._sources.push(new AutorunSource(this._manager, mount, apps));
     },
 
     addMount: function(mount, apps, contentTypes) {
@@ -352,8 +352,8 @@ const AutorunTransientDispatcher = new Lang.Class({
     }
 });
 
-const AutorunTransientSource = new Lang.Class({
-    Name: 'AutorunTransientSource',
+const AutorunSource = new Lang.Class({
+    Name: 'AutorunSource',
     Extends: MessageTray.Source,
 
     _init: function(manager, mount, apps) {
@@ -363,7 +363,7 @@ const AutorunTransientSource = new Lang.Class({
 
         this.parent(mount.get_name());
 
-        this._notification = new AutorunTransientNotification(this._manager, this);
+        this._notification = new AutorunNotification(this._manager, this);
 
         // add ourselves as a source, and popup the notification
         Main.messageTray.add(this);
@@ -375,34 +375,24 @@ const AutorunTransientSource = new Lang.Class({
     }
 });
 
-const AutorunTransientNotification = new Lang.Class({
-    Name: 'AutorunTransientNotification',
+const AutorunNotification = new Lang.Class({
+    Name: 'AutorunNotification',
     Extends: MessageTray.Notification,
 
     _init: function(manager, source) {
-        this.parent(source, source.title, null, { customContent: true });
+        this.parent(source, source.title);
 
         this._manager = manager;
-        this._box = new St.BoxLayout({ style_class: 'hotplug-transient-box',
-                                       vertical: true });
-        this.addActor(this._box);
-
         this._mount = source.mount;
 
         source.apps.forEach(Lang.bind(this, function (app) {
             let actor = this._buttonForApp(app);
 
             if (actor)
-                this._box.add(actor, { x_fill: true,
-                                       x_align: St.Align.START });
+                this.addButton(actor);
         }));
 
-        this._box.add(this._buttonForEject(), { x_fill: true,
-                                                x_align: St.Align.START });
-
-        // set the notification to transient and urgent, so that it
-        // expands out
-        this.setTransient(true);
+        // set the notification to urgent, so that it expands out
         this.setUrgency(MessageTray.Urgency.CRITICAL);
     },
 
@@ -432,29 +422,11 @@ const AutorunTransientNotification = new Lang.Class({
         return button;
     },
 
-    _buttonForEject: function() {
-        let box = new St.BoxLayout();
-        let icon = new St.Icon({ icon_name: 'media-eject-symbolic',
-                                 style_class: 'hotplug-notification-item-icon' });
-        box.add(icon);
-
-        let label = new St.Bin({ y_align: St.Align.MIDDLE,
-                                 child: new St.Label
-                                 ({ text: _("Eject") })
-                               });
-        box.add(label);
-
-        let button = new St.Button({ child: box,
-                                     x_fill: true,
-                                     x_align: St.Align.START,
-                                     button_mask: St.ButtonMask.ONE,
-                                     style_class: 'hotplug-notification-item' });
-
-        button.connect('clicked', Lang.bind(this, function() {
-            this._manager.ejectMount(this._mount);
-        }));
+    _onClicked: function() {
+        this.parent();
 
-        return button;
+        let app = Gio.app_info_get_default_for_type('inode/directory', false);
+        startAppForMount(app, this._mount);
     }
 });